/**
 * 服务端类：socket服务端，接收客户端发来的请求，统计请求次数，把接收到的
 * 信息逆序然后发给对应的客户端。
 *
 * 2008-3-17
 * @author 李威
 * @see lsd.server.ServerService
 *
 */
package lsd.server;

import java.net.ServerSocket;
import java.net.Socket;
import java.util.Timer;

import lsd.util.ReadCount;
import lsd.util.SocketUtil;

public class MainServerService {

    public static int count = 0;

    public static void main(String[] args) {
        new Timer().schedule(new ReadCount(), 0, 1000 * 10);
        try {
            //建立服务监听    
            ServerSocket server = new ServerSocket(SocketUtil.port);
            //每建立一个socket连接，把连接交给一个ServerService线程处理
            System.out.println("Server start~!");
            while (true) {
                Socket newSocket = server.accept();
                //              count++;
                //              System.out.println("current count="+count);
                doConnect(newSocket);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    /**
     * 为新的socket连接分配一个ServerSerice线程
     * 
     * @param newSocket 新的socket连接
     */
    public static void doConnect(Socket newSocket) {
        ServerService server = new ServerService(newSocket);
        new Thread(server).start();
    }
}
